﻿using System.ComponentModel.DataAnnotations;
using DelovodnaKnjiga.DataLayer;
using System.Linq;

namespace DelovodnaKnjiga.DataLayer
{
    partial class DelovodnaKnjigaDataContext
    {
        public DelovodnaKnjigaDataContext() :
            base(Common.Properties.Settings.Default.ConnectionString, mappingSource)
        {
            OnCreated();
        }
    }

    public partial class Zaposleni
    {
        public string ImePrezime
        {
            get
            {
                return this._Ime + " " + this._Prezime;
            }
        }

    }

    #region Tip dokumenta
    partial class DokumentTip 
    {
        partial void OnValidate(System.Data.Linq.ChangeAction action)
        {
            if (string.IsNullOrEmpty(this.Naziv))
                throw new ValidationException("Naziv je obavezno polje!");
            else if (this.Naziv.Length > 50)
                throw new ValidationException("Maksimalna dužina naziva je 50 karaktera!");
        }
    }
    #endregion

    #region Delovodnik
    partial class Delovodnik
    {
        partial void OnValidate(System.Data.Linq.ChangeAction action)
        {
            if (string.IsNullOrEmpty(this.Naziv))
                throw new ValidationException("Naziv je obavezno polje!");
            else if (this.Naziv.Length > 50)
                throw new ValidationException("Maksimalna dužina naziva je 50 karaktera!");

            if (string.IsNullOrEmpty(this.Sifra))
                throw new ValidationException("Šifra je obavezno polje!");
            else if (this.Sifra.Length > 4)
                throw new ValidationException("Maksimalna dužina šifre je 4 karaktera!");

        }
    }
    #endregion

    partial class Dokument
    {
        DelovodnaKnjigaDataContext dc = new DelovodnaKnjigaDataContext();

       partial void OnDelovodnikIdChanged()
        {
            if (this.DokumentId == 0)
            {
                this.DelovodniBroj = Common.Tools.DkFunkcije.VratiDelovodniBroj(this.DelovodnikId, this.Datum);
            }
        }

        partial void OnDatumChanged()
        {
            if (this.DokumentId == 0)
            {
                this.DelovodniBroj = Common.Tools.DkFunkcije.VratiDelovodniBroj(this.DelovodnikId, this.Datum);
            }
        }

        partial void OnValidate(System.Data.Linq.ChangeAction action)
        {
            if (this.DelovodnikId == 0)
                throw new ValidationException("Delovodna knjiga je obavezno polje!");

            if (this.DokumentTipId == 0)
                throw new ValidationException("Tip dokumenta je obavezno polje!");

            if (string.IsNullOrEmpty(this.DelovodniBroj))
                throw new ValidationException("Delovodni broj je obavezno polje!");
            else if (this.DelovodniBroj.Length > 50)
                throw new ValidationException("Maksimalna dužina delovodnog broja je 50 karaktera!");

            if (string.IsNullOrEmpty(this.Naziv))
                throw new ValidationException("Naziv je obavezno polje!");
            else if (this.Naziv.Length > 250)
                throw new ValidationException("Maksimalna dužina naziva je 250 karaktera!");

            if (!string.IsNullOrEmpty(this.BrojRegistratora))
            if (this.BrojRegistratora.Length > 50)
                throw new ValidationException("Maksimalna dužina broja registratora je 50 karaktera!");

            if (!string.IsNullOrEmpty(this.LokacijaArhive))
            if (this.LokacijaArhive.Length > 100)
                throw new ValidationException("Maksimalna dužina za lokaciju arhive je 50 karaktera!");

        }

    }
}
